#ifndef __H_MVP_TRANSPORT_TRANSMITTER_H__
#define __H_MVP_TRANSPORT_TRANSMITTER_H__

#include <memory>

namespace motovis
{
namespace transport
{

template <typename MessageT>
class Transmitter
{
  public:
    using MessagePtr = std::shared_ptr<MessageT>;

    virtual ~Transmitter();
    virtual bool transmit(const std::string &channel_name,
                          const MessagePtr &msg) = 0;
};

template <typename MessageT> Transmitter<MessageT>::~Transmitter() {}

} // namespace transport
} // namespace motovis

#endif // __H_MVP_TRANSPORT_TRANSMITTER_H__
